Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

241
Visualizações
Advertencia de reacción "Proporcionó un accesorio `valor` a un campo de formulario sin un controlador `onChange`..." al usar la propagación de eventos

Un ejemplo:

 function App() { const [user, setUser] = React.useState({ name: '', surname: '' }); const handleChange = e => { setUser(prev => ({...prev, [e.target.name]: e.target.value})); }; return ( <div className="App"> <form onChange={handleChange}> <input type="text" name="name" placeholder="name" value={user.name} /> <input type="text" name="surname" placeholder="surname" value={user.surname} /> </form> </div> ); } ReactDOM.createRoot(document.querySelector('.react')).render(<App />);
 <script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script> <script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script> <div class='react'></div>

Y recibo estas advertencias:

Advertencia: proporcionó una propiedad de value a un campo de formulario sin un controlador onChange . Esto generará un campo de solo lectura. Si el campo debe ser mutable, use defaultValue . De lo contrario, establezca onChange o readOnly .

¿Debería simplemente ignorarlos?

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Técnicamente, no hay nada malo en su código. Entonces sí, puede ignorar los registros de forma segura.

Sin embargo, la delegación de eventos no es la "manera de reaccionar" para lidiar con los estados de los formularios, por lo que no podrá deshacerse de esas advertencias.

En mi humilde opinión, no es una buena experiencia de desarrollo, por lo que podría simplemente agregar onChange={handleChange} a cada campo en lugar de configurar onChange en el formulario. Supongo que el sistema de eventos React está lo suficientemente optimizado como para no tener que delegar eventos, incluso si en su caso de uso fue bastante conveniente y elegante.

about 4 years ago · Santiago Trujillo Relatório

0

Su OnChange debe estar en las entradas y no en el formulario, aquí hay un ejemplo:

 <input type="text" name="name" placeholder="name" value={user.name} onChange={handleChangeName}/> <input type="text" name="surname" placeholder="surname" value={user.surname} onChange={handleChangeSurName}/>

y este es el mango cambio de nombre

 const handleChangeName = (e) => { setUser(userInfo => {...userInfo, ['name']: e.target.value}) }

Debido a que no tiene onChange en sus entradas, genera esta alerta.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda